package com.steleot.jetpackcompose.playground.compose.materialiconsextended

import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.lazy.grid.items
//noinspection UsingMaterialAndMaterial3Libraries
import androidx.compose.material.Icon
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.sharp.*
import androidx.compose.material.icons.sharp.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.steleot.jetpackcompose.playground.navigation.graph.MaterialIconsExtendedNavRoutes
import com.steleot.jetpackcompose.playground.ui.base.material.DefaultScaffold

private const val URL = "materialiconsextended/ExtendedSharpScreen.kt"

@Composable
fun ExtendedSharpScreen() {
    DefaultScaffold(
        title = MaterialIconsExtendedNavRoutes.ExtendedSharp,
        link = URL,
    ) {
        ExtendedSharpGrid(paddingValues = it)
    }
}

private val list = listOf(
    Icons.Sharp._3dRotation,
    Icons.Sharp._4k,
    Icons.Sharp._5g,
    Icons.Sharp._6FtApart,
    Icons.AutoMirrored.Sharp._360,
    Icons.Sharp.AccessAlarm,
    Icons.Sharp.AccessAlarms,
    Icons.Sharp.Accessibility,
    Icons.Sharp.AccessibilityNew,
    Icons.AutoMirrored.Sharp.AccessibleForward,
    Icons.AutoMirrored.Sharp.Accessible,
    Icons.Sharp.AccessTime,
    Icons.Sharp.AccountBalance,
    Icons.Sharp.AccountBalanceWallet,
    Icons.Sharp.AccountTree,
    Icons.Sharp.AcUnit,
    Icons.Sharp.Adb,
    Icons.Sharp.AddAlarm,
    Icons.Sharp.AddAlert,
    Icons.Sharp.AddAPhoto,
    Icons.Sharp.AddBox,
    Icons.Sharp.AddBusiness,
    Icons.Sharp.Addchart,
    Icons.Sharp.AddCircleOutline,
    Icons.Sharp.AddComment,
    Icons.Sharp.AddIcCall,
    Icons.Sharp.AddLocation,
    Icons.Sharp.AddLocationAlt,
    Icons.Sharp.AddPhotoAlternate,
    Icons.Sharp.AddRoad,
    Icons.Sharp.AddShoppingCart,
    Icons.Sharp.AddTask,
    Icons.AutoMirrored.Sharp.AddToHomeScreen,
    Icons.Sharp.AddToPhotos,
    Icons.Sharp.AddToQueue,
    Icons.Sharp.Adjust,
    Icons.Sharp.AdminPanelSettings,
    Icons.Sharp.AdUnits,
    Icons.Sharp.Agriculture,
    Icons.Sharp.AirlineSeatFlatAngled,
    Icons.Sharp.AirlineSeatFlat,
    Icons.Sharp.AirlineSeatIndividualSuite,
    Icons.Sharp.AirlineSeatLegroomExtra,
    Icons.Sharp.AirlineSeatLegroomNormal,
    Icons.Sharp.AirlineSeatLegroomReduced,
    Icons.Sharp.AirlineSeatReclineExtra,
    Icons.Sharp.AirlineSeatReclineNormal,
    Icons.Sharp.AirplanemodeActive,
    Icons.Sharp.AirplanemodeInactive,
    Icons.Sharp.Airplay,
    Icons.Sharp.AirportShuttle,
    Icons.Sharp.AlarmAdd,
    Icons.Sharp.Alarm,
    Icons.Sharp.AlarmOff,
    Icons.Sharp.AlarmOn,
    Icons.Sharp.Album,
    Icons.Sharp.AlignHorizontalCenter,
    Icons.AutoMirrored.Sharp.AlignHorizontalLeft,
    Icons.AutoMirrored.Sharp.AlignHorizontalRight,
    Icons.Sharp.AlignVerticalBottom,
    Icons.Sharp.AlignVerticalCenter,
    Icons.Sharp.AlignVerticalTop,
    Icons.Sharp.AllInbox,
    Icons.Sharp.AllInclusive,
    Icons.AutoMirrored.Sharp.AltRoute,
    Icons.Sharp.AmpStories,
    Icons.Sharp.Analytics,
    Icons.Sharp.Anchor,
    Icons.Sharp.Android,
    Icons.AutoMirrored.Sharp.Announcement,
    Icons.Sharp.Apartment,
    Icons.Sharp.Api,
    Icons.Sharp.AppBlocking,
    Icons.Sharp.AppSettingsAlt,
    Icons.Sharp.Apps,
    Icons.Sharp.Architecture,
    Icons.Sharp.Archive,
    Icons.AutoMirrored.Sharp.ArrowBackIos,
    Icons.Sharp.ArrowCircleDown,
    Icons.Sharp.ArrowCircleUp,
    Icons.Sharp.ArrowDownward,
    Icons.Sharp.ArrowDropDownCircle,
    Icons.Sharp.ArrowDropUp,
    Icons.AutoMirrored.Sharp.ArrowForwardIos,
    Icons.AutoMirrored.Sharp.ArrowLeft,
    Icons.AutoMirrored.Sharp.ArrowRightAlt,
    Icons.AutoMirrored.Sharp.ArrowRight,
    Icons.Sharp.ArrowUpward,
    Icons.AutoMirrored.Sharp.Article,
    Icons.Sharp.ArtTrack,
    Icons.Sharp.AspectRatio,
    Icons.Sharp.Assessment,
    Icons.Sharp.AssignmentInd,
    Icons.AutoMirrored.Sharp.Assignment,
    Icons.Sharp.AssignmentLate,
    Icons.Sharp.AssignmentReturned,
    Icons.AutoMirrored.Sharp.AssignmentReturn,
    Icons.Sharp.AssignmentTurnedIn,
    Icons.Sharp.Assistant,
    Icons.Sharp.AssistantPhoto,
    Icons.Sharp.Atm,
    Icons.Sharp.AttachEmail,
    Icons.Sharp.AttachFile,
    Icons.Sharp.Attachment,
    Icons.Sharp.AttachMoney,
    Icons.Sharp.Audiotrack,
    Icons.Sharp.AutoDelete,
    Icons.Sharp.Autorenew,
    Icons.Sharp.AvTimer,
    Icons.Sharp.BabyChangingStation,
    Icons.Sharp.Backpack,
    Icons.AutoMirrored.Sharp.Backspace,
    Icons.Sharp.Backup,
    Icons.Sharp.BackupTable,
    Icons.Sharp.Badge,
    Icons.Sharp.BakeryDining,
    Icons.Sharp.Balcony,
    Icons.Sharp.Ballot,
    Icons.Sharp.BarChart,
    Icons.Sharp.BatchPrediction,
    Icons.Sharp.Bathroom,
    Icons.Sharp.Bathtub,
    Icons.Sharp.BatteryAlert,
    Icons.Sharp.BatteryChargingFull,
    Icons.Sharp.BatteryFull,
    Icons.Sharp.BatterySaver,
    Icons.Sharp.BatteryStd,
    Icons.AutoMirrored.Sharp.BatteryUnknown,
    Icons.Sharp.BeachAccess,
    Icons.Sharp.Bed,
    Icons.Sharp.BedroomBaby,
    Icons.Sharp.BedroomChild,
    Icons.Sharp.BedroomParent,
    Icons.Sharp.Bedtime,
    Icons.Sharp.Beenhere,
    Icons.Sharp.Bento,
    Icons.Sharp.BikeScooter,
    Icons.Sharp.Biotech,
    Icons.Sharp.Blender,
    Icons.Sharp.Block,
    Icons.Sharp.Bloodtype,
    Icons.Sharp.BluetoothAudio,
    Icons.Sharp.BluetoothConnected,
    Icons.Sharp.BluetoothDisabled,
    Icons.Sharp.BluetoothDrive,
    Icons.Sharp.Bluetooth,
    Icons.AutoMirrored.Sharp.BluetoothSearching,
    Icons.Sharp.BlurCircular,
    Icons.Sharp.BlurLinear,
    Icons.Sharp.BlurOff,
    Icons.Sharp.BlurOn,
    Icons.Sharp.Bolt,
    Icons.Sharp.Book,
    Icons.Sharp.BookmarkAdded,
    Icons.Sharp.BookmarkAdd,
    Icons.Sharp.BookmarkBorder,
    Icons.Sharp.Bookmark,
    Icons.Sharp.BookmarkRemove,
    Icons.Sharp.Bookmarks,
    Icons.Sharp.BookOnline,
    Icons.Sharp.BorderAll,
    Icons.Sharp.BorderBottom,
    Icons.Sharp.BorderClear,
    Icons.Sharp.BorderColor,
    Icons.Sharp.BorderHorizontal,
    Icons.Sharp.BorderInner,
    Icons.Sharp.BorderLeft,
    Icons.Sharp.BorderOuter,
    Icons.Sharp.BorderRight,
    Icons.Sharp.BorderStyle,
    Icons.Sharp.BorderTop,
    Icons.Sharp.BorderVertical,
    Icons.AutoMirrored.Sharp.BrandingWatermark,
    Icons.Sharp.BreakfastDining,
    Icons.Sharp.Brightness1,
    Icons.Sharp.Brightness2,
    Icons.Sharp.Brightness3,
    Icons.Sharp.Brightness4,
    Icons.Sharp.Brightness5,
    Icons.Sharp.Brightness6,
    Icons.Sharp.Brightness7,
    Icons.Sharp.BrightnessAuto,
    Icons.Sharp.BrightnessHigh,
    Icons.Sharp.BrightnessLow,
    Icons.Sharp.BrightnessMedium,
    Icons.Sharp.BrokenImage,
    Icons.Sharp.BrowserNotSupported,
    Icons.Sharp.BrunchDining,
    Icons.Sharp.Brush,
    Icons.Sharp.BubbleChart,
    Icons.Sharp.BugReport,
    Icons.Sharp.BuildCircle,
    Icons.Sharp.Bungalow,
    Icons.Sharp.BurstMode,
    Icons.Sharp.BusAlert,
    Icons.Sharp.BusinessCenter,
    Icons.Sharp.Business,
    Icons.Sharp.Cabin,
    Icons.Sharp.Cable,
    Icons.Sharp.Cached,
    Icons.Sharp.Cake,
    Icons.Sharp.Calculate,
    Icons.Sharp.CalendarToday,
    Icons.Sharp.CalendarViewDay,
    Icons.Sharp.CalendarViewMonth,
    Icons.Sharp.CalendarViewWeek,
    Icons.Sharp.CallEnd,
    Icons.AutoMirrored.Sharp.CallMade,
    Icons.AutoMirrored.Sharp.CallMerge,
    Icons.AutoMirrored.Sharp.CallMissed,
    Icons.AutoMirrored.Sharp.CallMissedOutgoing,
    Icons.AutoMirrored.Sharp.CallReceived,
    Icons.AutoMirrored.Sharp.CallSplit,
    Icons.Sharp.CallToAction,
    Icons.Sharp.CameraAlt,
    Icons.Sharp.CameraEnhance,
    Icons.Sharp.CameraFront,
    Icons.Sharp.CameraIndoor,
    Icons.Sharp.Camera,
    Icons.Sharp.CameraOutdoor,
    Icons.Sharp.CameraRear,
    Icons.Sharp.CameraRoll,
)

@Preview
@Composable
private fun ExtendedSharpGrid(paddingValues: PaddingValues = PaddingValues()) {
    LazyVerticalGrid(
        GridCells.Adaptive(60.dp),
        modifier = Modifier.padding(paddingValues = paddingValues),
    ) {
        items(list) {
            Icon(imageVector = it, contentDescription = null, modifier = Modifier.padding(8.dp))
        }
    }
}
